//对axios进行集中管理（对axios二次封装）
import axios from "axios";
//导入加载提示
import Toast from '@/plugin/Toast/index.js'
import Vue from "vue";
//Vue挂载Toast 执行install方法
Vue.use(Toast);

//设置默认：请求域名，超时时间
const request = axios.create({
    baseURL: 'http://localhost:8080', //默认请求域名
    timeOut: 5000, //请求超时 请求5秒还没请求成功，就返回失败
})

//拦截请求头，添加加载提示（ajax提示）
request.interceptors.request.use(function (config) {
    if (config.loading) {
        Toast.show(config.loading, 5000) //显示加载提示
    }
    //添加请求头（所有网络请求，都会添加请求头）
    config.headers.Authorization = "Bearer " + localStorage.getItem("token");
    return config;
})
//拦截相应头，关闭加载提示（ajax结束）
request.interceptors.response.use(function (res) {
    Toast.hide();
    return res;
}, function (err) {
    Toast.hide();
    return err;
})

export default request;
//exprot导出 default默认 timeOut超时 create创建
//interceptors拦截，request请求，response响应，config配置
//base继承 URL地址 